1. Field of the Invention
The invention relates generally to storage subsystems and is particularly applicable to array storage subsystems with multiple volumes wherein volumes may be physically exported and imported among multiple such array storage subsystems.
2. Discussion of Related Art
Computer systems use storage devices for storage and retrieval of data as well as programs. As computing applications have evolved, so to have demands on storage devices for increased capacity, speed and reliability. Storage devices have evolved from simple single disk devices to complex subsystems with substantial local control capabilities for extensive local management of storage.
Present day storage subsystems may incorporate local management capabilities for improved performance as well as enhanced reliability. Storage management techniques for enhanced performance may include features such as striping to distribute data over multiple individual disk drives in the subsystem so that any particular I/O operation may be completed by using multiple disk drives operating in parallel. Other storage management techniques, so-called RAID storage management, enhance reliability of storage subsystem by including redundancy information to permit ongoing operations of the storage subsystem despite loss of one or more of the individual disk drives.
Such high-performance, high reliability storage subsystems often subdivide or partition the total storage capacity of the subsystem into logical groupings referred to as volumes or logical units (“LUNs”). Each such volume may comprise a portion of the total capacity of the storage subsystem including some portion of one or more of a plurality of disk drives within the storage subsystem. Further, each disk drive within the storage subsystem may have portions of its individual capacity allocated to zero or more such volumes.
Each volume of such a storage subsystem is generally presented to attached host systems as a single high capacity, high-performance, high reliability storage device. Hidden from the host system is the “geometry” of the volume—the distribution of data over multiple disk drives and use of redundancy information. In other words, local control processing capabilities within the storage subsystem provide mapping of logical storage locations into corresponding physical locations on the individual disk drives and provide for generation and verification of redundancy information.
Many present day computing and storage applications involve not only one such array storage subsystem but potentially many such array storage subsystems. Each storage subsystem may provide one or more volumes of storage for a host system or a plurality of networked computing devices. Some volumes may be configured to optimize for performance while other volumes may be optimized for reliability depending upon the needs of particular computing applications. System administrators for such complex storage applications utilize tools to help configure the multiplicity of volumes associated with such complex storage applications. As particular applications within the administrator's enterprise increase or decrease their need for storage, the system administrator may dynamically reconfigure various aspects of the storage subsystems. Such reconfiguration may include, for example, migrating an entire volume physically from one array storage subsystem to another array storage subsystem. Such migration may be useful to provide added capacity for a particular computing applications associated with a particular storage subsystem where excess capacity is available in another storage subsystem.
In addition, in certain high security storage applications, it is desirable to physically remove an entire volume of storage for security reasons such that the volume may be reinstalled in the same storage subsystem at a later time. While removed however, the information on the storage volume may be physically secured from unauthorized access.
In general, as presently known in the art, configuration information is stored on the disk drives of a volume. The configuration information may indicate the storage array subsystem in which the volume is presently operating. Within that identified storage subsystem, the volume and disk drives are referred to as “native”. The same information relative to other storage array subsystems defines the disk drives and volume as “foreign” with respect to such other storage array subsystems. When individual disk drives are inserted into a storage subsystem, the controller(s) of that storage subsystem read the configuration information from the disk drives and determine if the individual disk drive is native or foreign with respect to that storage array subsystem. Similarly, if all disk drives of a volume are inserted into a system, the volume may be identified as foreign or native to that storage system. The information read from the disk drives also includes information regarding the volumes in which each disk drive was a member. When the controller of the storage array reads the configuration information from the disk drive and determines that disk drive is foreign with respect to that storage array subsystem, the user may be prompted to indicate whether the volume or volumes associated with this drive are to be “imported” into the storage array.
Some present techniques and storage systems attempt to automate the importation of disks and volumes into a storage system. These present techniques essentially depend on the user changing the status of the affected volume/disks to “offline” (i.e., not presently accessible for storage operations. When such an “offline” disk or volume is inserted into a storage subsystem, the subsystem attempts to automatically import the disks or volumes.
A number of problems are known in the art with regard to such automated importation of foreign disk drives and volumes. First, the technique is somewhat inconsistent. The response of the system into which the “offline” disk or volume is inserted depends on the state of the system. If the system is powered up when the “offline” disk or volume is inserted, the inserted disk/volume will be brought “online” and hence made usable. If the storage system is powered off when the disk/volume is inserted, the inserted disk/volume will remain “offline” when the system is later powered up. Still further, if the user neglects to set the disk/volume in the “offline” state prior to removing it from the first system, the disk/volume will be automatically placed online in the new system in which it is inserted. The results of this present technique are somewhat difficult for users to understand and seemingly non-deterministic.
A second problem may arise under the present techniques if a volume is reinserted into the system from which it was removed. If the other drives of the system are reconfigured after removal of a disk/volume such that configuration information is updated, the removed volume when reinserted will appear as a native set of devices but having old configuration information. Some systems so recognizing old configuration information may update the configuration information by overwriting the apparently old information with the newly configured information. Such a sequence risks loss of data in the volume so reinserted and hence lost to the storage system.
These and other problems make it evident that a need exists for improved techniques to manage migration of volumes between storage array systems and for reinsertion of a volume into a storage array subsystem.